package com.filldream.fastboot.base;


//import com.baomidou.mybatisplus.generator.AutoGenerator;
//import com.baomidou.mybatisplus.generator.config.*;
//import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import org.apache.commons.lang3.StringUtils;

/**
 * @author RickSun
 * @date 2019年4月23日
 * @Description:sql代码生成器
 * 废弃，请根据mybatis-plus版本自行配置，后面作者有时间将优化此工具
 */
//public class CodeGeneration {
//
//    /**
//     * 1、若有多数据源请注意修改配置和包名
//     * 2、默认数据源生成的东西都放在entity、mapper、service下，而其他数据源的数据则会在默认情况下新建数据源目录
//     */
//
//    //所需生成的表
//    private static String tableNames = "";  //表名
//    private static Boolean isOverWriteXml = true; //是否覆盖xml
//    private static  Boolean isOverWriteOther = true; //是否覆盖非xml
//
//    //mysql配置
//    private static  String  mysqlUrl = "jdbc:mysql://localhost:3306/filldream?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8";
//    private static  String mysqlDriverName = "com.mysql.cj.jdbc.Driver";
//    private static  String mysqlUserName = "root";
//    private static  String mysqlPassword = "123456";
//
//    //包名配置
//    private static String basePackage = "/fastboot-base";
//    private static String baseUrl = "com.filldream.fastboot";
//    private static String baseParentName = baseUrl +".base";
//    private static String dbNum = "";  //数据源，默认数据源填空
//
//    public static void main(String[] args) {
//
//        //获取不生成xml的代码生成器
//        AutoGenerator mpg = getAutoGeneratorByNoXml("/src/main/java/",isOverWriteOther);
//        //获取生成xml的代码生成器
//        String xmlPath = StringUtils.isNotBlank(dbNum) ? "/src/main/resources/mapper/" + dbNum : "/src/main/resources";
//        AutoGenerator mpgXml = getAutoGeneratorByXml(xmlPath,isOverWriteXml);
//        // 策略配置
//        StrategyConfig strategy = new StrategyConfig();
//        strategy.setNaming(NamingStrategy.underline_to_camel);
//        strategy.setColumnNaming(NamingStrategy.underline_to_camel);
//        strategy.setEntityLombokModel(true);
//        strategy.setRestControllerStyle(true);
//        strategy.setDbColumnUnderline(true);
//        strategy.setInclude(tableNames.split(","));
//        strategy.setControllerMappingHyphenStyle(true);
//        mpg.setStrategy(strategy);
//        mpg.execute();
//
//        mpgXml.setStrategy(strategy);
//        mpgXml.execute();
//    }
//
//    /**
//     * 数据源配置
//     * @return
//     */
//    private static DataSourceConfig getDataSourceConfig(){
//        DataSourceConfig dsc = new DataSourceConfig();
//        dsc.setUrl(mysqlUrl);
//        dsc.setDriverName(mysqlDriverName);
//        dsc.setUsername(mysqlUserName);
//        dsc.setPassword(mysqlPassword);
//        return dsc;
//    }
//
//    /**
//     * 全局配置
//     * @return
//     */
//    private static GlobalConfig globalConfig(String outputDir,Boolean isOverwrite){
//        // 全局配置
//        GlobalConfig gc = new GlobalConfig();
//        final String projectPath = System.getProperty("user.dir") + basePackage;
//        gc.setOutputDir(projectPath + outputDir);
//        gc.setAuthor("RickSun");
//        // 不需要ActiveRecord特性的请改为false
//        gc.setActiveRecord(false);
//        // XML 二级缓存
//        gc.setEnableCache(false);
//        // XML ResultMap
//        gc.setBaseResultMap(true);
//        // XML columList
//        gc.setBaseColumnList(true);
//
//        gc.setOpen(false);
//        gc.setMapperName("%sMapper");
//        gc.setXmlName("%sMapper");
//
//        gc.setFileOverride(isOverwrite);
////        gc.setS //实体属性 Swagger2 注解
//        return gc;
//    }
//
//    private static AutoGenerator getAutoGeneratorByNoXml(String outputDir,Boolean isOverWrite){
//        AutoGenerator mpg = new AutoGenerator();
//        // 全局配置
//        mpg.setGlobalConfig(globalConfig(outputDir,isOverWrite));
//        //数据源配置
//        mpg.setDataSource(getDataSourceConfig());
//
//        //配置不生成controller，service
//        TemplateConfig templateConfig = new TemplateConfig();
//        templateConfig.setController(null);
//        templateConfig.setService(null);
//        templateConfig.setServiceImpl(null);
//        templateConfig.setXml(null);
//        mpg.setTemplate(templateConfig);
//
//        //TODO 修改本地父包
//        final PackageConfig pc = new PackageConfig();
//        pc.setParent(baseParentName);
//        pc.setMapper(StringUtils.isNotBlank(dbNum) ? "mapper." + dbNum  : "mapper");
//        pc.setEntity(StringUtils.isNotBlank(dbNum) ? "entity." + dbNum : "entity");
//        mpg.setPackageInfo(pc);
//        return mpg;
//    }
//
//    /**
//     * 生成xml
//     * @param outputDir
//     * @return
//     */
//    private static AutoGenerator getAutoGeneratorByXml(String outputDir,Boolean isOverWrite){
//        AutoGenerator mpg = new AutoGenerator();
//        // 全局配置
//        mpg.setGlobalConfig(globalConfig(outputDir,isOverWrite));
//        //数据源配置
//        mpg.setDataSource(getDataSourceConfig());
//
//        //配置不生成controller，service
//        TemplateConfig templateConfig = new TemplateConfig();
//        templateConfig.setController(null);
//        templateConfig.setService(null);
//        templateConfig.setServiceImpl(null);
//        templateConfig.setEntity(null);
//        templateConfig.setMapper(null);
//        mpg.setTemplate(templateConfig);
//
//        //TODO 修改本地父包
//        // 包配置
//        final PackageConfig pc = new PackageConfig();
//        pc.setParent("");
//        pc.setXml("mapper");
//        String tempName = StringUtils.isNotBlank(dbNum) ? baseParentName + ".entity." + dbNum : baseParentName + ".entity";
//        String tempName2 = StringUtils.isNotBlank(dbNum) ? baseParentName + ".mapper." + dbNum : baseParentName + ".mapper";
//        pc.setEntity(tempName);
//        pc.setMapper(tempName2);
//        mpg.setPackageInfo(pc);
//        return mpg;
//    }
//
//
//}
